Fault isolation, as used herein, refers to a process for identifying a faulty component or components of a system which is not operating in accordance with pre-determined operating parameters. The fault isolation process generally begins at detection of abnormal system behavior and proceeds to identification of a "faulty", i.e. defective and/or improperly operating, component and/or components. With complex equipment, such as electronic control circuits, the fault isolation process requires expert knowledge of the equipment and is a time-consuming and difficult task.
To facilitate fault isolation, paper-based maintenance and troubleshooting instructions, such as service manuals, generally are utilized. For complicated systems, however, the service manuals are voluminous, require a great amount of time to generate, and are highly susceptible to incompleteness and errors. Further, in order to isolate a fault in a reasonable amount of time, the system user generally must have some expertise and knowledge of the system.
To improve upon fault isolation through paper-based instruction manuals, rule-based expert systems for practice on computers have been implemented. The rules, generally referred to as a knowledge base, of these expert systems embody the experience and heuristic knowledge of a human expert.
Because extracting heuristic and experiential knowledge from a human is difficult and time-consuming, systems for performing diagnosis based on more fundamental knowledge, i.e., knowledge that could be available from the system designer or from design documentation, have been implemented. Such fundamental knowledge is often embodied in a software model, sometimes referred to herein as a model, representation of the system. For example, an electric circuit is often represented by a circuit schematic or higher level block diagrams. The model contains functions of system components, functionality of the components, and connections between the components. Systems for developing conclusions, i.e. deductions, based upon a descriptive model for purposes such as diagnosis are often referred to as model-based reasoning systems. Model-based reasoning systems are more "automated" than rule-based expert systems because model-based systems eliminate utilization of experiential knowledge. Rather, model-based systems use generic, reusable, diagnostic information and procedures.
Known models used in model-based diagnosis systems can be categorized into two categories, namely "connectivity" models and "connectivity and functional" models. A connectivity model, sometimes referred to herein as a connectivity-only model, comprises nodes and directed connections. Each node represents a component of the system being diagnosed and directed connections indicate the structural formation, i.e. the connectivity, of the system components. In the connectivity model, only the structure of the system is modelled. The actual operation, i.e. the function, performed by each system component is not modelled or utilized. Therefore, the nominal values of system variables for a specific test condition are predetermined by some other simulation method.
With the connectivity model, the system variables can only be represented qualitatively as being "GOOD" or "BAD". That is, the actual operating value of a system variable is either equal to (GOOD) or not equal to (BAD) the predetermined nominal value of the variable. A model-based diagnostic system based upon a connectivity model thus makes deductions only with qualitative information. Although the connectivity model used in some model-based diagnosis procedures may be satisfactory to identify faulty components in simple systems, the connectivity model generally inhibits accurate fault isolation in more complex systems, especially those having feedback loops. For example, if one component in a feedback loop is indicated as being "BAD", diagnosis with the connectivity model can only indicate that the entire feedback loop is "BAD" and further isolation of a faulty component with the connectivity model is impossible.
"Connectivity and functional" models, on the other hand, allow functional behavior of system components to be expressed in specific numerical, i.e. quantitative, terms or in qualitative terms. Model-based reasoning systems, when using quantitative models, can make use of quantitative measurement information and thus generally provide more accurate diagnosis than qualitative methods. The quantitative results are specific numerical values for each terminal, such as 5.01 V, as opposed to qualitative values, such as BAD. Model-based reasoning systems which provide quantitative results, however, require, in many applications, computing resources and time that are beyond those available.
With connectivity and functional software models, the system to be diagnosed is modelled by using both the quantitative transfer function of each component and the connectivity of the systems components. Therefore, with the connectivity and functional model, however, extensive calculations must be performed, especially when complex system components having complicated transfer functions are represented in the model. Although fault isolation with connectivity and functional models is very accurate, the time period required to complete the fault isolation process utilizing this model can preclude real-time diagnostic operations.
Model-based diagnostic systems also generally include a deductive mechanism, such as a constraint propagation mechanism, which forms predictions or estimations as to values of system variables at terminals of each system component represented in the model. For example, in one embodiment of a constraint propagation, occurs when all but one terminal of a component has a measured or deduced value. A value is determined for the one terminal by propagation, i.e. execution of the transfer function of the system component from the other terminal values. Reference to inputs and outputs of a component is not important, or even utilized, by the propagation mechanism. Specifically, terminal values for system component outputs can be determined from component inputs and component inputs can be determined from component outputs by manipulating the transfer function of the component. Other embodiments of constraint propagation mechanisms are also known, such as propagation mechanisms which allow propagation when two terminals of a component do not have values. With this mechanism, a symbol is assigned to one of the terminals without value and a symbolic expression is determined for the other terminal without value. Such propagation is sometimes referred to as symbolic constraint propagation.
Each value propagated by the propagation mechanism through each system component depends on the proper operation of a set of components, and each set of dependencies is recorded using a mechanism sometimes referred to herein as a dependency tracking mechanism. When an inconsistency occurs between a propagated value, i.e. a value predicted by the propagation mechanism, and an actual measured value at a terminal, or between two propagated values at a terminal, a conflict is recorded. The set of components involved in the conflict, i.e. the conflict set, is identified from the sets of components from which each propagated value depends. If the propagated and/or measured values at a terminal concur, no conclusions are drawn. Specifically, the dependent components from which concurring values depend cannot be assumed to be fault-free since a true fault may not be evidenced by one particular measurement.
Fault isolation also often requires a best measurement selection mechanism. This selection mechanism identifies the next best measurement to perform for efficient fault isolation. Specifically, the measurement selection mechanism instructs, through an interface, a system user to make a measurement at a selected terminal in order to further isolate the faulty component. The system user enters a measured value of the selected terminal, and then this measured value is utilized for another sequence of propagation through the model by the propagation mechanism.
As propagation and measurement continues, a number of conflict sets will be outstanding from which fault candidates can be derived. A fault candidate comprises a set of components which includes at least one component from each conflict set. The failure of all components of a fault candidate is a valid explanation for all the measurement results. A "single fault" candidate is a component common to all conflict sets. A "multiple fault" candidate contains components not included in all conflict sets. As propagation is repeated, the actual fault is more isolated and eventually identified so that the appropriate system component can be replaced or repaired.
Because fault isolation using model-based diagnostic systems is time consuming, test procedures to be followed for fault isolation often are represented in the form of a decision tree, generally referred to as a fault tree or a diagnostic tree. Such a tree includes nodes which identify tests to be performed and branches which represent possible outcomes of each test. As used herein, a test is defined as a measurement at a specific terminal within a system being diagnosed. The tree also contains "leaf" nodes which terminate various paths within the tree and represent conclusions, e.g., a specified component is faulty, based on test results obtained for each specific path.
Some diagnostic trees are termed "binary" trees because these trees only accept binary test results, i.e. GOOD or BAD. Therefore, after performing a test indicated by each node, only two branches or paths can be followed. A binary diagnostic tree can be generated using a diagnostic system based upon a connectivity-only model. Binary results provide incomplete information, for example, because these results do not indicate how badly a system component is operating. Further, a multiple fault candidate generally cannot be found by a binary diagnostic tree. Therefore, once one faulty component is repaired, the entire fault isolation process must be repeated to identify other faulty components. This process is time-consuming. Also, as with the conductivity-only model, the binary tree cannot be used to precisely isolate faulty components in feedback loops.
Ternary diagnostic trees, i.e. each measurement node containing three branches usually denoted HIGH, OK, or LOW, also have been implemented. A known fault-isolation system is a model-based diagnostic system that uses a connectivity and quantitative functional model of a system to be diagnosed and automatically generates a ternary tree therefrom. With the above-identified fault-isolation system, however, higher branching-factor trees cannot be generated. None of the known art utilizes a model-based diagnostic system using a connectivity and functional model, which expresses functional behavior of system components in quantitative terms, to automatically generate, off-line, a multi-branched diagnostic tree, the branching-factor of each node being selected by a system user or by the system itself and being variable.